This invention relates generally to digital electronic systems and, in particular, to digital systems having a control application program loaded into a memory device within the digital system. A digital camera is one example of such a system, however the present invention is applicable to a wide variety of digital systems, including portable consumer electronics products as well as custom industrial systems.
Typically, these systems are microprocessor based, and the control application is stored in a read-only memory (ROM), which is permanently mounted in the system. In addition to being inexpensive, storing the control application in a ROM has the added benefit of making it more difficult for the user to corrupt the application code.
Storing the control application in ROM also has some disadvantages. The major disadvantage is that the control application cannot be easily modified to take advantage of new software developments or to remove existing program defects. In order to modify the application program, the ROM must be physically removed and replaced with a new ROM containing the new code.
Some limitations to modifying the control application can be overcome by introducing additional components to the system. As shown in FIG. 1, an example of such a system 100 includes processing unit 105, ROM 110, random-access memory (RAM) 115, controlled equipment 120, input-output (I/O) device 125, and removable memory 130, all interconnected via bus 135. Typically, as shown in FIG. 2, the control application in ROM 110 is copied into RAM 115, where it can then be modified and executed by processing unit 105. For example, routine X 205 in ROM 110 has been replaced with updated routine X.1 210. Then, instead of Routine 2 (in ROM 110) calling Routine X at its ROM address, as indicated by arrow 215, Routine 2 (in RAM 115) calls Routine X.1 at its RAM address, as indicated by arrow 220. Generally, updated routines are copied in from I/O 125 or, alternatively, from removable memory 130.
A major disadvantage of this approach is that it uses a greater amount of RAM, a more valuable resource than ROM. For example, in digital cameras, captured images are generally stored in RAM. Therefore, the more RAM that is used by the control application, the less RAM there is available for captured images. Thus, what is needed is an extensible digital system that uses less of the valuable RAM resource.